package com.fw.service.serviceprofile;

import java.io.Serializable;
import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.fw.service.bean.EntryBean;
import com.fw.service.bean.SearchCriteriaBean;
import com.fw.service.bean.SearchResultBean;
import com.fw.service.serviceprofile.bean.SearchServiceProfileBean;
import com.fw.service.serviceprofile.bean.ServiceProfileBean;

public interface ServiceProfileService {

    // "java.lang.List.com.fw.service.bean.ErrorBean", List<ErrorBean>
    // "com.fw.service.serviceprofile.bean.ServiceProfileBean", ServiceProfileBean

    @Transactional
    public List<EntryBean<String, Serializable>> createServiceProfile(ServiceProfileBean serviceProfileBean);

    public ServiceProfileBean getServiceProfile(Long id);

    @Transactional
    public List<EntryBean<String, Serializable>> updateServiceProfile(ServiceProfileBean serviceProfileBean);

    @Transactional
    public List<EntryBean<String, Serializable>> deleteServiceProfile(ServiceProfileBean serviceProfileBean);

    public Boolean checkUniqueServiceId(String serviceId);

    public SearchResultBean<ServiceProfileBean> selectServiceProfile(SearchCriteriaBean<SearchServiceProfileBean> searchCriteriaBean);

    public byte[] exportServiceProfileAsCSV(SearchCriteriaBean<SearchServiceProfileBean> searchCriteriaBean);

    public ServiceProfileBean getServiceProfileByServiceId(String serviceId);
}
